Management API
Management API — это REST API для управления моделями.
URL: http://localhost:8080/pod-1/api/
С его помощью вы можете:
- Загрузить новую модель в Compressa
- Запустить модель для инференса
- Провести дообучение модели
- И т. д.
Также доступна документация Swagger, если вам удобнее работать с REST API напрямую из браузера
URL: http://localhost:8080/pod-1/api/docs/
Библиотека моделей
GET /v1/models/
Список моделей, доступных для запуска и дообучения.
Пример:
curl -X 'GET' \
'http://localhost:8080/pod-1/api/v1/models/' \
-H 'accept: application/json'
Схема ответа:
[
{
"model_id": "string",
"adapter": true,
"base_model_id": "string"
}
]
POST /v1/models/add/
Скачивание модели с Hugging Face.
Параметры:
- query:
model_id
- идентификатор модели на Hugging Face, напримерopenchat/openchat-3.5-0106
для ссылки.
Пример:
curl -X 'POST' \
'http://localhost:8080/pod-1/api/v1/models/add/?model_id=mymodel_id' \
-H 'accept: application/json' \
-d ''
Схема ответа:
{
"id": "4d78d943-1896-4d7b-9f11-b10cc2389ba3",
"name": "DOWNLOAD_mymodel_id",
"status": "RUNNING",
"started_at": "2024-03-21T09:58:29.846708"
}
Запуск моделей
GET /v1/deploy/
Получить информацию о текущей развернутой модели.
Пример:
curl -X 'GET' \
'http://localhost:8080/api/pod-1/v1/deploy/' \
-H 'accept: application/json'
Схема ответа:
{
"model_id": "string",
"adapter_ids": [
"string"
]
}
POST /v1/deploy/
Запуск моделей и дообученных адаптеров для инференса. Список id можно получить с помощью GET /v1/models/
.
Тело запроса:
{
"model_id": "string",
"adapter_ids": [
"string"
]
}
model_id
- идентификатор моделиadapter_ids
- список идентификаторов адаптеров
Пример:
curl -X 'POST' \
'http://localhost:8080/pod-1/api/v1/deploy/' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"model_id": "model_id1",
"adapter_ids": [
"adapter_id1",
"adapter_id2"
]
}'
Схема ответа:
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"status": "CREATED",
"started_at": "2024-03-21T10:10:07.521Z"
}
GET /v1/deploy/status
Получить статус развернутой модели.
Пример:
curl -X 'GET' \
'http://localhost:8080/pod-1/api/v1/deploy/status/' \
-H 'accept: application/json'
Схема ответа:
{
"model_id": "model_id1",
"adapter_ids": [
"adapter_id1",
"adapter_id2"
],
"job": {
"id": "8a63349c-078f-4e98-8968-4f011593329c",
"name": "DEPLOY_model_id1_adapters_id1_id2",
"status": "RUNNING",
"started_at": "2024-03-21T07:35:16.861681"
}
}
POST /v1/deploy/interrupt/
Отключение текущей развернутой модели.
Пример:
curl -X 'POST' \
'http://localhost:8080/pod-1/api/v1/deploy/interrupt/' \
-H 'accept: application/json' \
-d ''
Схема ответа:
{
"id": "8a63349c-078f-4e98-8968-4f011593329c",
"name": "DEPLOY_model_id1_adapters_id1_id2",
"status": "RUNNING",
"started_at": "2024-03-21T07:35:16.861681"
}
Jobs
Операции, такие как загрузка модели или развертывание, связаны с jobs. Следующие API позволяют управлять выполнением jobs.
GET /v1/jobs/
Получить все jobs со статусами.
Пример:
curl -X 'GET' \
'http://localhost:8080/pod-1/api/v1/jobs/' \
-H 'accept: application/json'
Схема ответа:
[
{
"id": "8a63349c-078f-4e98-8968-4f011593329c",
"name": "DEPLOY_model_id1_adapters_id1_id2",
"status": "RUNNING",
"started_at": "2024-03-21T07:35:16.861681"
},
{
"id": "4d78d943-1896-4d7b-9f11-b10cc2389ba3",
"name": "DOWNLOAD_test",
"status": "FINISHED",
"started_at": "2024-03-21T09:58:29.846708"
}
]
GET /v1/jobs/{job_id}/status/
Получить последний статус job с job_id
.
Параметры:
- path:
job_id
Пример:
curl -X 'GET' \
'http://localhost:8080/pod-1/api/v1/jobs/4d78d943-1896-4d7b-9f11-b10cc2389ba3/status/' \
-H 'accept: application/json'
Схема ответа:
{
"id": "4d78d943-1896-4d7b-9f11-b10cc2389ba3",
"name": "DOWNLOAD_test",
"status": "FINISHED",
"started_at": "2024-03-21T09:58:29.846708"
}
POST /v1/jobs/{job_id}/interrupt/
Прервать выполнение job с job_id
.
Параметры:
- path:
job_id
Пример:
curl -X 'POST' \
'http://localhost:8080/api/v1/jobs/8a63349c-078f-4e98-8968-4f011593329c/interrupt/' \
-H 'accept: application/json' \
-d ''
Схема ответа:
{
"id": "8a63349c-078f-4e98-8968-4f011593329c",
"name": "DEPLOY_model_id1_adapters_id1_id2",
"status": "KILLED",
"started_at": "2024-03-21T07:35:16.861681"
}